function Y = mutation(X, ratio)
    m = size(X, 1);
    randomIndex = randperm(m);
    mutationNumber = ceil(m * ratio);

    for k = 1: mutationNumber
        r = rand();
        if r > 0.5
            x = X(randomIndex(k), 1);
            X(randomIndex(k), 1) = abs(10 * sin(pi / 20 * (x + 2 * rand())));
        else
            x = X(randomIndex(k), 2);
            X(randomIndex(k), 2) = abs(10 * sin(pi / 20 * (x + 2 * rand())));
        end
    end
    
    Y = X;
end